home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
igo
/
src
/
igo.c
< prev
next >
Wrap
Text File
|
1993-07-08
|
5KB
|
189 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <snd.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
char *guiEgbPtr ; /* EGB のワークアドレス */
char guiSndPtr[16*1024] ; /* SND のワークアドレス */
void main()
{
extern int APL_init() ;
MMICTRL ctrl ;
/* ダイアログの移動範囲を設定するために、 MMI_Open関数 */
/* の引数を使用します。通常の移動範囲ならば引数の指定 */
/* は、 NULL で大丈夫です。 */
ctrl.page0 = 3 ; /* 16色2画面に設定する */
ctrl.page1 = 3 ;
ctrl.writePage = 0 ; /* page0 を書き込みページ */
ctrl.displayPage = 3 ; /* 2画面表示 */
ctrl.priority = 0 ;
ctrl.mode = 0 ; /* 16色モードに設定する */
ctrl.width = 512 ; /* 画面モード3 では512 */
ctrl.size = 0 ; /* メモリの初期化は */
ctrl.ptr = NULL ; /* GUIライブラリに任せる */
ctrl.asize = 0 ; /* アプリケーションで必要とする */
ctrl.aptr = NULL ; /* 初期メモリは無し */
ctrl.fr.lupx = 0 ; /* 画面の大きさを */
ctrl.fr.lupy = 0 ; /* (0,0)-(639,479) */
ctrl.fr.rdwx = 639 ; /* に設定する */
ctrl.fr.rdwy = 479 ;
ctrl.move = ctrl.fr ; /* 移動枠の Y 座標を */
ctrl.move.lupy = 22 ; /* 22 に設定する */
ctrl.white = 15 ; /* 白色は 15 番 */
ctrl.black = 8 ; /* 黒色は 8 番 */
ctrl.gray = 7 ; /* 灰色は 7 番 */
ctrl.xor = 14 ; /* 反転色は 14 番 */
/* 致命的エラーハンドラの登録 */
FM_SetVector() ;
/* サウンドの初期化 */
SND_init(guiSndPtr) ;
/* 初期化処理 */
if (MMI_Open( &ctrl ) == NOERR)
{
/* 初期化に成功すればメインループに入る. */
if (APL_init() == NOERR)
/* ファイルダイアログ関係の初期化処理 */
/* カレントディレクトリを保存する */
FDG_SaveCurDir() ;
/* ファイルダイアログの初期化 */
FDG_InitFileDlg() ;
MMI_ExecSystem() ;
/* ファイルダイアログ関係の終了処理 */
/* メモリ開放 */
FDG_FreeFileDlg() ;
/* カレントディレクトリを復帰する */
FDG_RecovCurDir() ;
}
/* 終了処理 */
MMI_Close() ;
/* サウンドの終了 */
SND_end() ;
/* 致命的エラーハンドラの復帰 */
FM_ResetVector() ;
}
int APL_init()
{
extern MMIINIT initDataMIABOU ;
extern MMIINIT initDataMIHANDY ;
extern MMIINIT initDataMITITLE ;
extern MMIINIT initDataMIDESK ;
extern MMIINIT initDataMIAUTO ;
extern MMIINIT initDataMIWARN ;
extern MMIINIT initDataMICOMMNT ;
/* サイドワークの登録に使う部品の外部宣言 */
extern int mitemBarId[] ;
register int ret ;
/* EGB ワークアドレスの取得. */
guiEgbPtr = MMI_GetEgbPtr() ;
/* ハイパ型部品の初期化 */
if ((ret = MMI_initHyper()) < 0)
return ret ;
/* ダイアログ型部品の初期化 */
if ((ret = MMI_initDialogL40()) < 0)
return ret ;
/* アラート型部品の初期化 */
if ((ret = MMI_initAlertL40()) < 0)
return ret ;
/* ウインドウ型部品の初期化 */
if ((ret = MMI_initWindowL40()) < 0)
return ret ;
/* メッセージ型部品の初期化 */
if ((ret = MMI_initMessageL40()) < 0)
return ret ;
/* メニュー型部品の初期化 */
if ((ret = MMI_initMenuL40()) < 0)
return ret ;
/* ボタン型部品の初期化 */
if ((ret = MMI_initButtonL40()) < 0)
return ret ;
/* ドロウボタン型部品の初期化 */
if ((ret = MMI_initDrawButtonL40()) < 0)
return ret ;
/* アイコンボタン型部品の初期化 */
if ((ret = MMI_initIconL40()) < 0)
return ret ;
/* トグルアイコン型部品の初期化 */
if ((ret = MMI_initToggleIconL40()) < 0)
return ret ;
/* メニューアイテム型部品の初期化 */
if ((ret = MMI_initMenuItemL40()) < 0)
return ret ;
/* スクロールバー型部品の初期化 */
if ((ret = MMI_initScrollBarL40()) < 0)
return ret ;
/* テキスト型部品の初期化 */
if ((ret = MMI_initTextL40()) < 0)
return ret ;
/* 数値入力型部品の初期化 */
if ((ret = MMI_initNumBoxL40()) < 0)
return ret ;
/* ファイルダイアログを使うときはリストメニューの初期化も必要 */
/* リストメニュー型部品の初期化 */
if ((ret = MMI_initListMenuL40()) < 0)
return ret ;
/* デフォルトビジュアルイフェクトの登録 */
MMI_SetUpVisualEffect() ;
/* デフォルトサウンドイフェクトの登録 */
MMI_SetUpSoundEffect() ;
/* 背景データの初期化 */
disp_init();
kifu_init();
/* データの登録 */
if ((ret = MMI_Init(&initDataMIABOU)) < 0)
return ret ;
if ((ret = MMI_Init(&initDataMIHANDY)) < 0)
return ret ;
if ((ret = MMI_Init(&initDataMITITLE)) < 0)
return ret ;
if ((ret = MMI_Init(&initDataMIDESK)) < 0)
return ret ;
if ((ret = MMI_Init(&initDataMIAUTO)) < 0)
return ret ;
/* データの登録 */
if ((ret = MMI_Init(&initDataMIWARN)) < 0)
return ret ;
/* データの登録 */
if ((ret = MMI_Init(&initDataMICOMMNT)) < 0)
return ret ;
/* 背景を表示する */
MMI_SendMessage(MMI_GetBaseObj(), MM_SHOW, 0) ;
/* SIDEWORKメニューを登録する */
MMI_SetUpSDKMenu( mitemBarId[0] , -1 ) ;
return NOERR ;
}